355363a
Goto Top

Berechtigungen auf User Home Laufwerke mit PowerShell setzen

Hallo zusammen, vielleicht kann mir jemand helfen. Ich würde gerne diverse User Home Laufwerke, automatisch mithilfe einer vorher eingelesen TXT Datei, in welcher die entsprechenden User Namen hinterlegt sind, Berechtigungen entziehen. Jedoch kommt es hier immer wieder zu Fehlern. Ich habe mir schon sehr viele Möglichkeiten angeschaut, komme aber leider nicht mehr weiter

Content-Key: 2137643738

Url: https://administrator.de/contentid/2137643738

Printed on: May 20, 2024 at 16:05 o'clock

Member: Felix0201
Felix0201 Nov 06, 2023 at 14:06:57 (UTC)
Goto Top
Hi.
Was für Fehler kommen denn?
Das dazugehörige Skript wäre auch hilfreich.
Member: 355363a
355363a Nov 06, 2023 at 14:20:44 (UTC)
Goto Top
Zitat von @Felix0201:

Hi.
Was für Fehler kommen denn?
Das dazugehörige Skript wäre auch hilfreich.

Das Problem ist, das es einmal auch ohne Fehler funktioniert hat, sich an den gesetzten Berechtigungen aber nichts getan hat

#$PSDefaultParameterValues['*-AD*:Server'] = 'XY' 

$listpath = $PSScriptRoot + '\Users.txt'  
$userList = Get-Content $listpath

Durchgehen von Liste der Benutzer und versuch die Berechtigungen zu ändern
foreach ($user in $userList) {

$path = '\\citsfs02\global\users\' + $user  

Write-Host $path -ForegroundColor Green
$acl = Get-Acl $path
#Informationen über Berechtigungen ausgeben lassen

foreach ($Access in $acl.Access){
if ($Access.IdentityReference -like "S-1-5-21-2104262037-4104397967-1002242693-00000" -or $Access.IdentityReference -like "Admin"){  
Write-Host $Access.IdentityReference "darf nicht geändert werden!" -ForegroundColor Yellow  
} else {
Write-Host $Access.IdentityReference "muss auf Lesen geändert werden!" -ForegroundColor Red  
Write-Output $Access | ft
$filter = "SID -eq '" + $Access.IdentityReference + "'"  
$aduser = Get-ADUser -Filter $filter
Write-Host "change " $aduser.SamAccountName  
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($aduser.SamAccountName,"Read","Allow")  
Write-Output $AccessRule | ft
$acl.SetAccessRule($AccessRule)
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($aduser.SamAccountName,"Write, Modify, FullControl","Deny")  
Write-Output $AccessRule | ft
$acl.SetAccessRule($AccessRule)
Set-Acl -Path $path -AclObject $acl
}
}
}
Member: Felix0201
Felix0201 Nov 06, 2023 at 14:53:32 (UTC)
Goto Top
vielleicht hilft erst ma diese Seite weiter:
Powershell set ACL Permissions

Ansonsten hatte ich mal was ähnliches vor, da ging es allerdings um das setzten von Vollzugriff für eine bestimmte Gruppe.

# Pfad
$pfad = "C:\hier\und\da\"  
#Domäne\Gruppe oder Domäne\Benutzer
$username="domain\group"  
#Rechte
$permission="FullControl"  

ForEach($folder in get-childItem -Path $pfad)
{
$full = $pfad+$folder
$Acl = Get-Acl $full
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($username,$permission,'ContainerInherit,ObjectInherit', 'None', 'Allow')  
$Acl.SetAccessRule($Ar)
Set-Acl $full $Acl
write-host $full
}


Ich weiß allerdings nicht genau, ob es wie bei dir mit "$aduser.samaccountname" funktioniert. Da der Idendity-Parameter "domain\user" voraussetzt.

siehe MS